<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8" />
		<base href="../../../" />
		<script src="page.js"></script>
		<link type="text/css" rel="stylesheet" href="page.css" />
	</head>
	<body>
		[page:Material] &rarr;

		<h1>[name]</h1>

		<p class="desc">The default material used by [page:Points].</p>

		<h2>Code Example</h2>
		<code>
		const vertices = [];

		for ( let i = 0; i < 10000; i ++ ) {
			const x = THREE.MathUtils.randFloatSpread( 2000 );
			const y = THREE.MathUtils.randFloatSpread( 2000 );
			const z = THREE.MathUtils.randFloatSpread( 2000 );

			vertices.push( x, y, z );
		}

		const geometry = new THREE.BufferGeometry();
		geometry.setAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 ) );
		const material = new THREE.PointsMaterial( { color: 0x888888 } );
		const points = new THREE.Points( geometry, material );
		scene.add( points );
		</code>

		<h2>Examples</h2>
		<p>
			[example:misc_controls_fly misc / controls / fly]<br />
			[example:webgl_buffergeometry_drawrange WebGL / BufferGeometry / drawrange]<br />
			[example:webgl_buffergeometry_points WebGL / BufferGeometry / points]<br />
			[example:webgl_buffergeometry_points_interleaved WebGL / BufferGeometry / points / interleaved]<br />
			[example:webgl_camera WebGL / camera ]<br />
			[example:webgl_geometry_convex WebGL / geometry / convex]<br />
			[example:webgl_geometry_shapes WebGL / geometry / shapes]<br />
			[example:webgl_interactive_raycasting_points WebGL / interactive / raycasting / points]<br />
			[example:webgl_multiple_elements_text WebGL / multiple / elements / text]<br />
			[example:webgl_points_billboards WebGL / points / billboards]<br />
			[example:webgl_points_dynamic WebGL / points / dynamic]<br />
			[example:webgl_points_sprites WebGL / points / sprites]
		</p>

		<h2>Constructor</h2>
		<h3>[name]( [param:Object parameters] )</h3>
		<p>
			[page:Object parameters] - (optional) an object with one or more
			properties defining the material's appearance. Any property of the
			material (including any property inherited from [page:Material]) can be
			passed in here.<br /><br />

			The exception is the property [page:Hexadecimal color], which can be
			passed in as a hexadecimal string and is `0xffffff` (white) by default.
			[page:Color.set]( color ) is called internally.
		</p>

		<h2>Properties</h2>
		<p>See the base [page:Material] class for common properties.</p>

		<h3>[property:Texture alphaMap]</h3>
		<p>
			The alpha map is a grayscale texture that controls the opacity across the
			surface (black: fully transparent; white: fully opaque). Default is
			null.<br /><br />

			Only the color of the texture is used, ignoring the alpha channel if one
			exists. For RGB and RGBA textures, the [page:WebGLRenderer WebGL] renderer
			will use the green channel when sampling this texture due to the extra bit
			of precision provided for green in DXT-compressed and uncompressed RGB 565
			formats. Luminance-only and luminance/alpha textures will also still work
			as expected.
		</p>

		<h3>[property:Color color]</h3>
		<p>[page:Color] of the material, by default set to white (0xffffff).</p>

		<h3>[property:Boolean fog]</h3>
		<p>Whether the material is affected by fog. Default is `true`.</p>

		<h3>[property:Texture map]</h3>
		<p>
			Sets the color of the points using data from a [page:Texture]. May
			optionally include an alpha channel, typically combined with
			[page:Material.transparent .transparent] or [page:Material.alphaTest .alphaTest].
		</p>

		<h3>[property:Number size]</h3>
		<p>
			Defines the size of the points in pixels. Default is `1.0`.<br />
			Will be capped if it exceeds the hardware dependent parameter
			[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/getParameter gl.ALIASED_POINT_SIZE_RANGE].
		</p>

		<h3>[property:Boolean sizeAttenuation]</h3>
		<p>
			Specify whether points' size is attenuated by the camera depth.
			(Perspective camera only.) Default is true.
		</p>

		<h2>Methods</h2>
		<p>See the base [page:Material] class for common methods.</p>

		<h2>Source</h2>

		<p>
			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
		</p>
	</body>
</html>
